TESTING, Export of name 'ngForm' not found

Descripcion

Al lanzar un test en Angular usando jasmine obtenemos el siguiente error:

Error: NG0301: Export of name 'ngForm' not found!

El error solo ocurre al lanzar el test y no al lanzar la aplicación angular de forma normal

Solucion

El error se da porque estamos utilizando el ngForm en el template:

<form [formGroup]="userForm" #form="ngForm">

Pero a pesar de que tenemos definido el ReactiveFormsModule en el app.module.ts el test no lo importa, tenemos que definirlo manualmente dentro del test:

Dentro del objeto de la configuración de los tests incluimos el imports:

imports: [ ReactiveFormsModule ]

El codigo final queda asi:

  beforeEach(async () => {
    await TestBed.configureTestingModule({
      declarations: [ UserComponent ],
      imports: [ ReactiveFormsModule ]
    })
    .compileComponents();
  });

NOTA: Hay que hacer el import del propio modulo a parte de declararlo en la configuración del test:

import { ReactiveFormsModule } from '@angular/forms';
Tags

Angular | variable | inicializacion